DML-管理数据(记录)

插入数据

使用insert into添加数据

1
2
3
#方式一
insert into TableName(column1,column2,...,columnN)
values (value1,value2,...,valueN);
  1. 插入的值类型要与列的类型相同(或兼容)

  2. 在表中插入数据时,若没有指定某列,视为null;指定的列可以通过输入值输入null。若该列不允许null,则报错。额

  3. 输入过程中,指定列的顺序不要求与表中顺序一致。省略列名时,默认按照表中列的顺序依次输入。

    示例:

    1
    2
    3
    4
    5
    6
    7
    8
    insert into beauty
    values (18,'张飞','男',null,'119',null,null);

    #包含子查询
    insert into beauty(name,phone)
    select boyName,'110'
    from boys
    where id<3;
  • 方式一支持输入多行、子查询
1
2
3
#方式二(使用较少)
insert into TableName
set column1=value1,...,columnN=valueN;

更改数据

单表修改

基本语法:

1
2
3
update TableName
set column1=value1,...,columnN=valueN
where condition_statement
  • 示例:

    1
    2
    3
    4
    set sql_safe_updates = 0;    
    update beauty
    set phone = '13888888'
    where name like '张%'

当数据库处于安全保护模式下,修改数据将报错,可通过命令set sql_safe_updates = 0;关闭安全模式

多表修改

根据一个表的信息,修改另外一个表的数据

基本语法:

1
2
3
4
5
6
#99语法
update TableName1
inner join TableName2
on connect_condition
set column1=value1,...,columnN=valueN
where condition_statement
  • 示例:

    1
    2
    3
    4
    5
    6
    #将张无忌的cp的电话修改为114
    update boys bo
    inner join beauty b
    on b.boyfriend_id = bo.id
    set b.phone = '114'
    where bo.boyName = '张无忌';

删除数据

单表删除数据

基本语法:

1
2
3
4
5
6
#方式一
delete from TableName
where condition_statement #无条件时,整表删除

#方式二
truncate TableName #整表删除

删除数据时整行删除

  • 使用delete删除时,自增长列的值从断点开始;truncate删除时自增长列的值从1开始;
  • 使用delete删除时有返回值,truncate删除,时无返回值。
  • 使用delete删除时可以滚回,truncate删除,时不能滚回
  • 示例:

    1
    2
    delete from beauty
    where phone like '%9%';

多表删除

根据一个表的信息,修改另外一个表的数据

基本语法:

1
2
3
4
5
6
#99语法
delete TableNames #delete后应写需要删除数据的所有表的表名
from TableName1
inner join TableName2
on connect_condition
where condition_statement
  • 示例:

    1
    2
    3
    4
    5
    6
    #删除黄晓明及其cp的信息
    delete b,bo
    from beauty b
    inner join boys bo
    on b.boyfriend_id = bo.id
    where bo.boyName = '黄晓明';